home *** CD-ROM | disk | FTP | other *** search
- {
- programme de changement de curseur sous turbo vision
- programme realise par
- charles vidal
- pour toutes suggestions
- email : vidal@amertume.ufr-info-p7.ibp.fr
-
- }
- program Edit_curseur_TV;
- uses Dos, Crt,MsgBox, Objects, Drivers,Views,Menus, Dialogs,
- App,InpLong,stddlg,tvgraph;
-
- const
- cmAbout = 1000;
- cmLoad = 1001;
- cmsave = 1002;
- cmModifier = 1003;
- cmInverse = 1004;
- cmFill =1005;
- cmClear=1006;
- cmessai = 1010;
- cmmodif_masque=1011;
- cmfillmasque=1012;
- cmrotation=1014;
- cmpascal=1015;
- cmsourceC=1016;
- cmmodif_xy=1017;
- type
- TListboxRec = record
- PS : PStringCollection;
- Focused : Integer;
- end;
- type
- TMyApp = object(TApplication)
- procedure InitMenuBar; virtual;
- procedure LoadCurseur;
- procedure saveascurseur;
- procedure Modif_curseur;
- procedure Inverse_curseur;
- procedure Fill_curseur;
- procedure Fill_masque;
- procedure clear_curseur;
- procedure essai_curseur;
- procedure modif_ecran;
- procedure rotation90;
- procedure pascal;
- procedure sourcec;
- procedure modif_xy;
- procedure HandleEvent(var Event: TEvent); virtual;
- end;
- Type
- dessin_curseur = record
- contx,conty : integer;
- mask_ecran : array[0..15] of word;
- mask_curseur : array[0..15] of word;
- end;
-
- Const
- fleche: dessin_curseur = (contx:0; conty:0;
- mask_ecran: ($3FFF,$1FFF,$0FFF,$07FF,
- $03FF,$01FF,$00FF,$007F,
- $003F,$001F,$01FF,$10FF,
- $30FF,$F87F,$F87F,$FC3F);
- mask_curseur: ($0000,$4000,$6000,$7000,
- $7800,$7C00,$7E00,$7F00,
- $7F80,$7FC0,$7C00,$4600,
- $0600,$0300,$0300,$0000));
-
- var modif_c: dessin_curseur;
- var
- fichier:file of dessin_curseur;
- fichiert:Text;
- char:array[1..16] of byte;
- var
- DataRecChar : record
- Field1 : Word;
- Field2 : Word;
- Field3 : Word;
- Field4 : Word;
- Field5 : Word;
- Field6 : Word;
- Field7 : Word;
- Field8 : Word;
- Field9 : Word;
- Field10 : Word;
- Field11 : Word;
- Field12 : Word;
- Field13 : Word;
- Field14 : Word;
- Field15 : Word;
- Field16 : Word;
- end;
-
- var
- MyApp: TMyApp;
- i:byte;
- chaine:string;
-
- {-----------------function misc .----------------------}
- Procedure change_souris(var p:dessin_curseur);
- Var reg : registers;
- begin
- with reg,p do
- begin
- ax:=9;
- bx:=contx;
- cx:=conty;
- dx:=ofs(mask_ecran[00]);
- es:=seg(mask_ecran[00]);
- end;
- intr($33,reg);
- end;
-
- function bit_a_un(a,pos:word):Boolean;
- BEGIN
- if ((a shr pos) and 1)=1 then bit_a_un:=true
- else bit_a_un:=false;
- END;
- procedure put_bit_a_un(var a:word;pos:word);
- BEGIN
- a:=a or (1 shl pos);
- END;
- procedure rotation(var source,dest:dessin_curseur);
- var i,j:byte;
- BEGIN
- fillchar(dest,sizeof(dessin_curseur),0);
- for i:=0 to 15 do
- BEGIN
- for j:=0 to 15 do
- BEGIN
- if bit_a_un(source.mask_curseur[i],j) then put_bit_a_un(dest.mask_curseur[j],15-i);
- if bit_a_un(source.mask_ecran[i],j) then put_bit_a_un(dest.mask_ecran[j],15-i);
- END;
- END;
- END;
- { ------------------ les boites dialogues --------------------- }
- function nom : PDialog;
- var
- Dlg : PDialog;
- R : TRect;
- Control : PView;
-
- begin
- R.Assign(24, 2, 58, 9);
- New(Dlg, Init(R,'Nom du curseur'));
- Dlg^.Flags := Dlg^.Flags and not wfClose;
-
- R.Assign(4, 2, 21, 3);
- Control := New(PInputLine, Init(R, 13));
- Dlg^.Insert(Control);
-
- R.Assign(1, 4, 13, 6);
- Control := New(PButton, Init(R, '~O~K', cmOK, bfDefault));
- Dlg^.Insert(Control);
-
- R.Assign(13, 4, 25, 6);
- Control := New(PButton, Init(R, '~A~nnuler', cmCancel, bfgrabfocus));
- Dlg^.Insert(Control);
-
- Dlg^.SelectNext(False);
- nom := Dlg;
- end;
-
- function xydialog : PDialog;
- var
- Dlg : PDialog;
- R : TRect;
- Control : PView;
-
- begin
- R.Assign(10, 2, 45, 9);
- New(Dlg, Init(R, 'x y dialogue'));
- Dlg^.Palette := dpBlueDialog;
-
- R.Assign(8, 2, 16, 3);
- Control := New(PInputLong, Init(R, 6, 0, 15, 0));
- Dlg^.Insert(Control);
-
- R.Assign(2, 2, 5, 3);
- Dlg^.Insert(New(PLabel, Init(R, 'X', Control)));
-
- R.Assign(8, 4, 16, 5);
- Control := New(PInputLong, Init(R, 6, 0, 15, 0));
- Dlg^.Insert(Control);
-
- R.Assign(2, 4, 5, 5);
- Dlg^.Insert(New(PLabel, Init(R, 'Y', Control)));
-
- R.Assign(22, 2, 32, 4);
- Control := New(PButton, Init(R, 'O~k~', cmOK, bfDefault));
- Dlg^.Insert(Control);
-
- R.Assign(22, 4, 32, 6);
- Control := New(PButton, Init(R, 'C~a~ncel', cmCancel, bfGrabFocus));
- Dlg^.Insert(Control);
-
- Dlg^.SelectNext(False);
- xydialog := Dlg;
- end;
-
- function MakeDialogC(titre:string) : PDialog;
- var
- Dlg : PDialog;
- R : TRect;
- Control : PView;
-
- begin
- R.Assign(3, 2, 71, 24);
- New(Dlg, Init(R, titre));
-
- R.Assign(1, 1, 5, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('A', NewSItem('b', NewSItem('c ', NewSItem('d',
- NewSItem('e',
- NewSItem('f',
- NewSItem('i',
- NewSItem('j',
- NewSItem('k',
- NewSItem('l',
- NewSItem('o',
- NewSItem('p',
- NewSItem('k',
- NewSItem('q',
- NewSItem('x',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(5, 1, 10, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(9, 1, 14, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(13, 1, 18, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(17, 1, 22, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(21, 1, 26, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(25, 1, 30, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(29, 1, 34, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(33, 1, 38, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('A', NewSItem('b', NewSItem('c ', NewSItem('d',
- NewSItem('e',
- NewSItem('f',
- NewSItem('i',
- NewSItem('j',
- NewSItem('k',
- NewSItem('l',
- NewSItem('o',
- NewSItem('p',
- NewSItem('k',
- NewSItem('q',
- NewSItem('x',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(37, 1, 42, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('a',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(41, 1, 46, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('b',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(45, 1, 50, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('c',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(49, 1, 54, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('d',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(53, 1, 58, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('e',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(57, 1, 62, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('f',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(61, 1, 66, 17);
- Control := New(PCheckboxes, Init(R,
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('g',
- NewSItem('x',
- Nil))))))))))))))))));
- Dlg^.Insert(Control);
-
- R.Assign(3, 18, 13, 20);
- Control := New(PButton, Init(R, 'O~k~', cmOK, bfDefault));
- Dlg^.Insert(Control);
-
- R.Assign(29, 18, 39, 20);
- Control := New(PButton, Init(R, 'C~a~ncel', cmCancel, bfGrabfocus));
- Dlg^.Insert(Control);
-
- Dlg^.SelectNext(False);
- MakeDialogc:= Dlg;
- end;
- {---------------------------------------}
- procedure TMyApp.essai_curseur;
- var curseur_tempo:dessin_curseur;
- begin
- rotation(modif_c,curseur_tempo);
- change_souris(curseur_tempo);
- messagebox(' Alors Qu''en dites vous ?',nil,mfokbutton);
- change_souris(fleche);
- end;
- procedure TMyApp.Loadcurseur;
- var
- R: TRect;
- FileDialog: PFileDialog;
- TheFile: FNameStr;
- b:byte;
- const
- FDOptions: Word = fdOKButton or fdOpenButton;
- begin
- TheFile := '*.CUR';
- New(FileDialog, Init(TheFile, 'Open file', '~F~ile name',
- FDOptions, 1));
- if ExecuteDialog(FileDialog, @TheFile) <> cmCancel then
- begin
- assign(Fichier,TheFile);
- reset(Fichier);
- read(Fichier,modif_c);
- close(fichier);
- end;
- end;
- procedure TMyApp.saveascurseur;
- var
- R: TRect;
- FileDialog: PFileDialog;
- TheFile: FNameStr;
- const
- FDOptions: Word = fdOKButton or fdOpenButton;
- begin
- TheFile := '*.CUR';
- New(FileDialog, Init(TheFile, 'Save file', '~F~ile name',
- FDOptions, 1));
- if ExecuteDialog(FileDialog, @TheFile) <> cmCancel then
- begin
- assign(Fichier,TheFile);
- rewrite(Fichier);
- write(Fichier,modif_c);
- close(fichier);
- end;
- end;
-
- procedure TMyApp.Modif_curseur;
- var j:byte;
- k:word;
- b:byte;
- tempo:string;
- begin
- with Datarecchar,modif_c do
- begin
- field1:=mask_curseur[0];field2:=mask_curseur[1];field3:=mask_curseur[2];
- field4:=mask_curseur[3];field5:=mask_curseur[4];field6:=mask_curseur[5];
- field7:=mask_curseur[6];field8:=mask_curseur[7];
- field9:=mask_curseur[8];field10:=mask_curseur[9];field11:=mask_curseur[10];
- field12:=mask_curseur[11];field13:=mask_curseur[12];field14:=mask_curseur[13];field15:=mask_curseur[14];
- field16:=mask_curseur[15];
- end;
- if Application^.ExecuteDialog(MakeDialogC('Figure'),@Datarecchar) = cmOk then
- begin
- with Datarecchar,modif_c do
- begin
- mask_curseur[0]:=field1;mask_curseur[1]:=field2;mask_curseur[2]:=field3;
- mask_curseur[3]:=field4;mask_curseur[4]:=field5;mask_curseur[5]:=field6;
- mask_curseur[6]:=field7;mask_curseur[7]:=field8;
- mask_curseur[8]:=field9;mask_curseur[9]:=field10;mask_curseur[10]:=field11;
- mask_curseur[11]:=field12;mask_curseur[12]:=field13;mask_curseur[13]:=field14;
- mask_curseur[14]:=field15;mask_curseur[15]:=field16;
- end;
- end;
- end;
- procedure TMyApp.Modif_ecran;
- var j:byte;
- k:word;
- b:byte;
- tempo:string;
- begin
- with Datarecchar,modif_c do
- begin
- field1:=mask_ecran[0];field2:=mask_ecran[1];field3:=mask_ecran[2];
- field4:=mask_ecran[3];field5:=mask_ecran[4];field6:=mask_ecran[5];
- field7:=mask_ecran[6];field8:=mask_ecran[7];
- field9:=mask_ecran[8];field10:=mask_ecran[9];field11:=mask_ecran[10];
- field12:=mask_ecran[11];field13:=mask_ecran[12];field14:=mask_ecran[13];field15:=mask_ecran[14];
- field16:=mask_ecran[15];
- end;
- if Application^.ExecuteDialog(MakeDialogC('Masque'),@Datarecchar) = cmOk then
- begin
- with Datarecchar,modif_c do
- begin
- mask_ecran[0]:=field1;mask_ecran[1]:=field2;mask_ecran[2]:=field3;
- mask_ecran[3]:=field4;mask_ecran[4]:=field5;mask_ecran[5]:=field6;
- mask_ecran[6]:=field7;mask_ecran[7]:=field8;
- mask_ecran[8]:=field9;mask_ecran[9]:=field10;mask_ecran[10]:=field11;
- mask_ecran[11]:=field12;mask_ecran[12]:=field13;mask_ecran[13]:=field14;
- mask_ecran[14]:=field15;mask_ecran[15]:=field16;
- end;
- end;
- end;
- procedure TMyApp.Rotation90;
- var tempo_curseur:dessin_curseur;
- BEGIN
- rotation(modif_c,tempo_curseur);
- modif_c:=tempo_curseur;
- END;
- procedure TMyApp.pascal;
- var t_c:dessin_curseur;
- R: TRect;
- FileDialog: PFileDialog;
- TheFile: FNameStr;
- var nomcurseur :record
- F1: string[30];
- end;
- const
- FDOptions: Word = fdOKButton or fdOpenButton;
- begin
- rotation(modif_c,t_c);
- fillchar(nomcurseur,sizeof(nomcurseur),0);
- if ExecuteDialog(nom, @nomcurseur) <> cmCancel then
- BEGIN
- TheFile := '*.PAS';
- New(FileDialog, Init(TheFile, 'Save file', '~F~ile name',
- FDOptions, 1));
- if ExecuteDialog(FileDialog, @TheFile) <> cmCancel then
- begin
- assign(fichiert,theFile);
- {$I-}
- append(fichiert);
- {$I+}
- if IOResult<>0 then rewrite(fichiert);
- with t_c do
- begin
- writeln(fichiert,'const ',nomcurseur.f1,': dessin_curseur = (contx:',contx,'; conty:',conty,';');
- writeln(fichiert,' mask_ecran: (',mask_ecran[0],',',mask_ecran[1],',',mask_ecran[2],',',mask_ecran[3],',');
- writeln(fichiert,' ',mask_ecran[4],',',mask_ecran[5],',',mask_ecran[6],',',mask_ecran[7],',');
- writeln(fichiert,' ',mask_ecran[8],',',mask_ecran[9],',',mask_ecran[10],',',mask_ecran[11],',');
- writeln(fichiert,' ',mask_ecran[12],',',mask_ecran[13],',',mask_ecran[14],',',mask_ecran[15],');');
- writeln(fichiert,' mask_curseur: (',mask_curseur[0],',',mask_curseur[1],',',mask_curseur[2],',',mask_curseur[3],',');
- writeln(fichiert,' ',mask_curseur[4],',',mask_curseur[5],',',mask_curseur[6],',',mask_curseur[7],',');
- writeln(fichiert,' ',mask_curseur[8],',',mask_curseur[9],',',mask_curseur[10],',',mask_curseur[11],',');
- writeln(fichiert,' ',mask_curseur[12],',',mask_curseur[13],',',mask_curseur[14],',',mask_curseur[15],'));');
- end;
- close(fichiert);
- end;
- end;
- END;
- procedure TMyApp.sourceC;
- var t_c:dessin_curseur;
- R: TRect;
- FileDialog: PFileDialog;
- TheFile: FNameStr;
- var nomcurseur :record
- F1: string[13];
- end;
- const
- FDOptions: Word = fdOKButton or fdOpenButton;
- begin
- rotation(modif_c,t_c);
- if ExecuteDialog(nom, @nomcurseur) <> cmCancel then
- BEGIN
- TheFile := '*.C';
- New(FileDialog, Init(TheFile, 'Save file', '~F~ile name',
- FDOptions, 1));
- if ExecuteDialog(FileDialog, @TheFile) <> cmCancel then
- begin
- assign(fichiert,theFile);
- {$I-}
- append(fichiert);
- {$I+}
- if IOResult<>0 then rewrite(fichiert);
- with t_c do
- begin
- writeln(fichiert,'const dessin_curseur ',nomcurseur.f1,' = {{',contx,',',conty,'},');
- writeln(fichiert,' {',mask_ecran[0],',',mask_ecran[1],',',mask_ecran[2],',',mask_ecran[3],',');
- writeln(fichiert,' ',mask_ecran[4],',',mask_ecran[5],',',mask_ecran[6],',',mask_ecran[7],',');
- writeln(fichiert,' ',mask_ecran[8],',',mask_ecran[9],',',mask_ecran[10],',',mask_ecran[11],',');
- writeln(fichiert,' ',mask_ecran[12],',',mask_ecran[13],',',mask_ecran[14],',',mask_ecran[15],'},');
- writeln(fichiert,' {',mask_curseur[0],',',mask_curseur[1],',',mask_curseur[2],',',mask_curseur[3],',');
- writeln(fichiert,' ',mask_curseur[4],',',mask_curseur[5],',',mask_curseur[6],',',mask_curseur[7],',');
- writeln(fichiert,' ',mask_curseur[8],',',mask_curseur[9],',',mask_curseur[10],',',mask_curseur[11],',');
- writeln(fichiert,' ',mask_curseur[12],',',mask_curseur[13],',',mask_curseur[14],',',mask_curseur[15],'}};');
- end;
- close(fichiert);
- end;
- end;
- END;
-
- procedure TMyApp.Inverse_curseur;
- var j:byte;
- begin
- for j:=0 to 15 do
- modif_c.mask_ecran[j]:=
- modif_c.mask_curseur[j] xor 65535;
- end;
-
- procedure TMyApp.Clear_curseur;
- var j:byte;
- begin
- for j:=0 to 15 do
- modif_c.mask_curseur[j]:=0;
- end;
- procedure TMyApp.Fill_curseur;
- var j:byte;
- begin
- for j:=0 to 15 do
- modif_c.mask_curseur[j]:=65535;
- end;
-
- procedure TMyApp.Fill_masque;
- var j:byte;
- begin
- for j:=0 to 15 do
- modif_c.mask_ecran[j]:=65535;
- end;
- procedure TMyApp.Modif_xy;
- var
- xyrec : record
- X : LongInt;
- Y : LongInt;
- end;
- begin
- xyrec.X:=modif_c.contx;
- xyrec.Y:=modif_c.conty;
- if ExecuteDialog(xydialog, @xyrec) <> cmCancel then
- if (xyrec.X<16) and (xyrec.X<16) then begin
- modif_c.contx:=xyrec.X;
- modif_c.conty:=xyrec.y;
- end
- else messagebox('erreur x<16 y<16 ',nil,mferror);
- end;
- procedure TMyApp.HandleEvent(var Event: TEvent);
- begin
- TApplication.HandleEvent(Event);
- case Event.What of
- evCommand:
- case Event.Command of
- cmabout:
- messagebox(' Curseur Edit charles vidal 1994 vidal@amertume.ufr-info-p7.ibp.fr'
- ,nil,mfinformation);
- cmModifier:Modif_curseur;
- cmsave:saveascurseur;
- cmload:loadcurseur;
- cmInverse:Inverse_curseur;
- cmFill:Fill_curseur;
- cmClear:Clear_curseur;
- cmessai:essai_curseur;
- cmmodif_masque:modif_ecran;
- cmfillmasque:fill_masque;
- cmrotation:rotation90;
- cmpascal:pascal;
- cmsourcec:sourcec;
- cmmodif_xy:modif_xy;
- end;
- end;
- ClearEvent(Event);
- end;
-
- Procedure TMyApp.InitMenuBar;
- var
- R : TRect;
-
- begin
- GetExtent(R);
- R.B.Y := R.A.Y + 1;
-
- MenuBar := New(PMenuBar, Init(R, NewMenu(
- NewSubMenu('#',hcNoContext,
- NewMenu(
- NewItem('About', '', kbNoKey, cmAbout, hcNoContext,
- nil)),
- NewSubMenu('~F~ile',hcNoContext,
- NewMenu(
- NewItem('Load', '', kbNoKey, cmLoad, hcNoContext,
- NewItem('save', '', kbNoKey, cmsave, hcNoContext,
- NewItem('Source Pascal','',kbNoKey, cmpascal, hcNoContext,
- NewItem('Source C','',kbNoKey, cmsourcec, hcNoContext,
- NewItem('~Q~uitter', '', kbNoKey, cmQuit, hcNoContext,
- nil)))))),
- NewSubMenu('~M~odifier',hcNoContext,
- NewMenu(
- NewItem('Figure', '', kbNoKey, cmModifier, hcNoContext,
- NewItem('Masque', '', kbNoKey, cmmodif_masque, hcNoContext,
- NewItem('Modif X Y', '', kbNoKey, cmmodif_xy, hcNoContext,
- nil)))),
- {NewItem('~M~odifier', '', kbNoKey, cmModifier, hcNoContext,}
- NewSubMenu('~E~ffect',hcNoContext,
- NewMenu(
- NewItem('Creer masque (Inverse figure)', '', kbNoKey, cmInverse, hcNoContext,
- NewItem('Fill figure', '', kbNoKey, cmFill, hcNoContext,
- NewItem('Fill masque', '', kbNoKey, cmFillmasque, hcNoContext,
- NewItem('Clear', '', kbNoKey, cmClear, hcNoContext,
- NewItem('Rotation', '', kbNoKey, cmrotation, hcNoContext,
- NewItem('Essai', '', kbNoKey, cmEssai, hcNoContext,
- nil))))))),
- NewItem('E~s~sai', '', kbNoKey, cmEssai, hcNoContext,
- nil))))))
- ));
- end;
-
- begin
- MyApp.Init;
- MyApp.Run;
- MyApp.Done;
- end.
-